package org.eclipse.jdt.internal.ui.callhierarchy;

import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IImportDeclaration;
import org.eclipse.jdt.core.JavaModelException;

/**
 * 重构类
 * .
 * @author hehuang 20180222
 *
 */
public interface RefactorClass extends TemplateEngineAware {
	
	void deleteImport(IImportDeclaration importDeclaration) throws JavaModelException;

	void addMethod(String modifier, String returnType, String methodName, TypeNamePairs parameters, Exceptions exception
			, String methodBody) throws JavaModelException;
	
	void addPublicMethod(String methodName, String returnType, TypeNamePairs parameters, Exceptions exception
			, String methodBody) throws JavaModelException;
	
	void addGetter(String fieldName, String fieldType) throws JavaModelException;
	
	void addGetter(String fieldName, String fieldType, String methodBody) throws JavaModelException;
	
	void addSetter(String fieldName, String fieldType) throws JavaModelException;
		
	void addSetter(String fieldName, String fieldType, String methodBody) throws JavaModelException;
	
	void deleteAnnotation(IField field, String annoName) throws JavaModelException;
	
	TemplateEngine getTemplateEngine();
}
